<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <parent>
  <artifactId>jsr330activator.testbundles</artifactId>
  <groupId>no.steria.osgi.jsr330activator</groupId>
  <version>1.1.1-SNAPSHOT</version>
 </parent>

 <artifactId>jsr330activator.testbundle4</artifactId>
 <packaging>bundle</packaging>

 <name>jsr330activator.testbundle4 OSGi Bundle</name>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.osgi</groupId>
   <artifactId>org.osgi.core</artifactId>
   <version>4.3.0</version>
   <scope>provided</scope>
  </dependency>
  <dependency>
   <groupId>no.steria.osgi.jsr330activator</groupId>
   <artifactId>jsr330activator.implementation</artifactId>
   <version>${project.version}</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>javax.inject</groupId>
   <artifactId>javax.inject</artifactId>
   <version>1</version>
  </dependency>
  <dependency>
   <groupId>no.steria.osgi.jsr330activator</groupId>
   <artifactId>jsr330activator.testbundle8</artifactId>
   <version>${project.version}</version>
   <scope>provided</scope>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <extensions>true</extensions>
    <configuration>
     <instructions>
      <Bundle-Activator>no.steria.osgi.jsr330activator.Jsr330Activator</Bundle-Activator>
      <Embed-Dependency>jsr330activator.implementation;inline=true,javax.inject;inline=true</Embed-Dependency>
     </instructions>
    </configuration>
   </plugin>
  </plugins>
 </build>

 <profiles>
  <profile>
   <id>build-for-felix</id>
   <dependencies>
    <dependency>
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.main</artifactId>
     <version>4.0.3</version>
     <scope>provided</scope>
    </dependency>
    <!-- To include a shell:
         <dependency>
         <groupId>org.apache.felix</groupId>
         <artifactId>org.apache.felix.gogo.shell</artifactId>
         <version>0.10.0</version>
         </dependency>
    -->
   </dependencies>
   <build>
    <plugins>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <executions>
       <execution>
        <id>compile</id>
        <phase>package</phase>
        <goals>
         <goal>run</goal>
        </goals>
        <configuration>
         <target>
          <pathconvert property="plugins.jars" pathsep="${path.separator}">
           <path refid="maven.runtime.classpath" />
           <map from="${project.build.directory}${file.separator}classes" to="" />
          </pathconvert>
          <pathconvert pathsep=" " property="bundles">
           <path path="${plugins.jars}" />
           <mapper>
            <chainedmapper>
             <flattenmapper />
             <globmapper from="*" to="file:modules/*" casesensitive="no" />
            </chainedmapper>
           </mapper>
          </pathconvert>
          <propertyfile file="${project.build.directory}/config.properties">
           <entry key="felix.auto.start" value="${bundles} file:modules/${project.build.finalName}.jar" />
           <entry key="org.osgi.framework.bootdelegation" value="*" />
          </propertyfile>
          <copy file="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}" tofile="${project.build.directory}/felix.jar" />
         </target>
        </configuration>
       </execution>
      </executions>
     </plugin>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.3</version>
      <executions>
       <execution>
        <id>create-executable-jar</id>
        <phase>package</phase>
        <goals>
         <goal>single</goal>
        </goals>
        <configuration>
         <descriptors>
          <descriptor>${basedir}/src/main/assembly/felix.xml</descriptor>
         </descriptors>
         <finalName>${project.build.finalName}</finalName>
        </configuration>
       </execution>
      </executions>
     </plugin>
    </plugins>
   </build>
  </profile>
  <profile>
   <id>run-on-felix</id>
   <dependencies>
    <dependency>
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.main</artifactId>
     <version>4.0.3</version>
     <scope>provided</scope>
    </dependency>
    <!-- org.apache.felix:org.apache.felix.gogo.shell:0.6.1 useless from Maven since stdin is swallowed -->
   </dependencies>
   <build>
    <plugins>
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <configuration>
       <target>
        <property name="vm.args" value="" />
        <pathconvert property="plugins.jars" pathsep="${path.separator}">
         <path refid="maven.runtime.classpath" />
         <map from="${project.build.directory}${file.separator}classes" to="" />
        </pathconvert>
        <makeurl property="urls" separator=" ">
         <path path="${plugins.jars}" />
         <path location="${project.build.directory}/${project.build.finalName}.jar" />
        </makeurl>
        <propertyfile file="${project.build.directory}/run.properties">
         <entry key="felix.auto.start" value="${urls}" />
         <entry key="felix.auto.deploy.action" value="uninstall,install,update,start" />
         <entry key="org.osgi.framework.storage" value="${project.build.directory}${file.separator}felix-cache" />
         <entry key="org.osgi.framework.bootdelegation" value="*" />
        </propertyfile>
        <makeurl property="run.properties.url" file="${project.build.directory}/run.properties" />
        <java fork="true" jar="${maven.dependency.org.apache.felix.org.apache.felix.main.jar.path}">
         <sysproperty key="felix.config.properties" value="${run.properties.url}" />
         <jvmarg line="${vm.args}" />
        </java>
       </target>
      </configuration>
     </plugin>
    </plugins>
   </build>
  </profile>
 </profiles>
 <description>An OSGi bundle used in integration tests.  This bundle embeds the Jsr330BundleActivator and javax.inject and uses the Jsr330BundleActivator to find a provider for the StorageService with a @Name annotation of "file".</description>
</project>
